<?php
class TARJETAPRODUCTIVAController extends AppController 
{
	var $name = 'TARJETAPRODUCTIVA';
	var $uses = array('Usuario','Estado','Sector','Municipio','Parroquia','Grado','Tenencia','Finca_base','Sub_sector','Dato_productivo_base','Rubro_unificado','Rubro','Finca','Dato_productivo','Productor','Tienda');
	var $helpers = array('Ajax','Html','Form','Javascript','Js','Json','For');
	var $layout =  "ajax";
	var $components = array('Json','Utilitario','For'/*,'RequestHandler','DebugKit.Toolbar'*/);

	function beforeFilter()
  {
  		$this->validar();
  }
	function ver_municipio($estado_id=null)
	{
		//$this->lista_municipios($estado_id);
		$this->set('lista_municipios',$this->Utilitario->lista_municipios($estado_id));
	}
	function ver_parroquia($municipio_id=null)
	{
		//$this->lista_parroquias($municipio_id);
		$this->set('lista_parroquias',$this->Utilitario->lista_parroquias($municipio_id));
	}
	function ver_municipio_finca($estado_id=null)
	{
		//$this->lista_municipios($estado_id);
		$this->set('lista_municipios',$this->Utilitario->lista_municipios($estado_id));
	}
	function ver_parroquia_finca($municipio_id=null)
	{
		//$this->lista_parroquias($municipio_id);
		$this->set('lista_parroquias',$this->Utilitario->lista_parroquias($municipio_id));
	}

	function ver_sub_sector($sector_id=null)
	{
		$this->set('lista_sub_sectores',$this->Utilitario->lista_sub_sector($sector_id));
	}

	function ver_rubro_unificado($sub_sector_id=null)
	{
		$this->set('lista_rubro_unificado',$this->Utilitario->lista_rubro_unificado($sub_sector_id));
	}

	function ver_rubro($rubro_unificado_id=null)
	{
		$this->set('lista_rubro',$this->Utilitario->lista_rubro($rubro_unificado_id));
	}

	public function ver_rubros_a_cargar($nombre_unidad=null,$cedrif_h=null,$tenencia_id=null,$estado_finca_id=null,$municipio_finca_id=null,$parroquia_finca_id=null,$cantidad_ha=null,$ha_productiva=null,$ha_estimada=null,$latitud=null,$longitud=null,$direccion=null)
	{
//echo "$nombre_unidad, $cedrif_h, $tenencia_id, $estado_finca_id, $municipio_finca_id, $parroquia_finca_id, $cantidad_ha, $ha_productiva, $ha_estimada,$latitud, $longitud, $direccion";
			$mostrar=0;
			if(empty($cedrif_h))
			{
				$this->Json->monta_imagem('','cedrif_h');
				$this->Json->mensaje('','Al Menos Debe Indicar La Cedula o RIF del Productor','ERROR','cedrif_h');
			}
			else if(empty($nombre_unidad))
			{
				$this->Json->monta_imagem('','nombre_unidad');
				$this->Json->mensaje('','EL NOMBRE DE LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','nombre_unidad');
			}
			else if(empty($tenencia_id))
			{
				$this->Json->monta_imagem('','tenencia_id');
				$this->Json->mensaje('','LA TENENCIA DE TIERRA ES OBLIGATORIA','ERROR','tenencia_id');
			}
			else if(empty($estado_finca_id))
			{
				$this->Json->monta_imagem('','estado_finca_id');
				$this->Json->mensaje('','EL ESTADO DONDE SE UBICA LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','estado_finca_id');
			}
			else if(empty($municipio_finca_id))
			{
				$this->Json->monta_imagem('','municipio_finca_id');
				$this->Json->mensaje('','EL MUNICIPIO DONDE SE UBICA LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','municipio_finca_id');
			}
			else if(empty($parroquia_finca_id))
			{
				$this->Json->monta_imagem('','parroquia_finca_id');
				$this->Json->mensaje('','La PARROQUIA DONDE SE UBICA LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','parroquia_finca_id');
			}
			else if(empty($direccion))
			{
				$this->Json->monta_imagem('','direccion_finca');
				$this->Json->mensaje('','LA DIRECCION DONDE SE UBICA LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','direccion_finca');
			}
	/*
			else if(empty($latitud))
			{
				echo "MUESTRA MENSAJE latitud";
				$this->Json->mensaje('','LA TENENCIA DE TIERRA ES OBLIGATORIA','ERROR','tenencia_id');
			}
			else if(empty($longitud))
			{
				echo "MUESTRA MENSAJE longitud";
				$this->Json->mensaje('','LA TENENCIA DE TIERRA ES OBLIGATORIA','ERROR','tenencia_id');
			}
	*/
			else if(empty($cantidad_ha))
			{
				$this->Json->monta_imagem('','cantidad_ha');
				$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS EXISTENTES EN LA UNIDAD PRODUCTIVA ES OBLIGATORIA','ERROR','cantidad_ha');
			}
			else if(empty($ha_productiva))
			{
				$this->Json->monta_imagem('','ha_productiva');
				$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS PRODUCTIVAS EN LA UNIDAD PRODUCTIVA ES OBLIGATORIA','ERROR','ha_productiva');
			}
			else if($ha_productiva > $cantidad_ha)
			{
				$this->Json->monta_imagem('','ha_productiva');
				$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS PRODUCTIVAS NO PUEDEN SER MAYOR A LA CANTIDAD DE HECTARIAS DE LA UNIDAD PRODUCTIVA','ERROR','ha_productiva');
			}
			else if(empty($ha_estimada))
			{
				$this->Json->monta_imagem('','ha_estimada');
				$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS ESTIMADAS A SEMBRAR EN LA UNIDAD PRODUCTIVA ES OBLIGATORIA','ERROR','ha_estimada');
			}
			else if($ha_estimada > $ha_productiva)
			{
				$this->Json->monta_imagem('','ha_estimada');
				$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS ESTIMADAS NO PUEDEN SER MAYOR A LA CANTIDAD DE HECTARIAS PRODUCTIVAS DE LA UNIDAD PRODUCTIVA','ERROR','ha_estimada');
			}
			else
			{
					if($this->valida_nombre_finca('Finca_base',$this->Utilitario->mayuscula($nombre_unidad),$parroquia_finca_id))
					{
							$data['Finca_base']['cedrif']=$this->Utilitario->mayuscula($cedrif_h);
							$data['Finca_base']['nombre']=$this->Utilitario->mayuscula($nombre_unidad);
							$data['Finca_base']['estado_id']=$estado_finca_id;
							$data['Finca_base']['municipio_id']=$municipio_finca_id;
							$data['Finca_base']['parroquia_id']=$parroquia_finca_id;
							$data['Finca_base']['direccion']=$this->Utilitario->mayuscula($direccion);
							$data['Finca_base']['latitud']=$latitud;
							$data['Finca_base']['longitud']=$longitud;
							$data['Finca_base']['cantidad_has']=$cantidad_ha;
							$data['Finca_base']['has_productivas']=$ha_productiva;
							$data['Finca_base']['has_estimadas']=$ha_estimada;
							$data['Finca_base']['tenencia_id']=$tenencia_id;
			
							if ($this->Finca_base->save($data))
					 		{
								
									$id=$this->Finca_base->id;
									$this->set('finca_base_id',$id);
									$this->set('productivas',$ha_productiva);
									$mostrar=1;
									/*echo "<script type=\"text/javascript\" language=\"javascript\">
									document.getElementById('ver_datos_productivos').style.display='none';
									document.getElementById('ver_rubros_a_cargar').style.display='block';
									</script>";*/
									echo "<script type=\"text/javascript\" language=\"javascript\">
									
									document.getElementById('ver_rubros_a_cargar_nuevo').style.display='block';
									document.getElementById('btn_asigna_rubros').disabled = true;
								
									</script>";
							}
							else
							{

								$this->Json->mensaje('','OCURRIO UN ERROR AL REGISTRAR LA UNIDAD PRODUCTIVA','ERROR','vacio');
								$mostrar=0;		
							}
					}
					else
					{
							$this->Json->mensaje('','LA UNIDAD PRODUCTIVA YA SE ENCUENTRA REGISTRADA EN EL SISTEMA','ERROR','nombre_unidad');
							$mostrar=0;		
					}
			
			}

			$this->set('mostrar',$mostrar);
			$this->set('lista_sector_productivo',$this->Utilitario->lista_sector_productivo());
	}

	public function cargar_rubro($finca_base_id=null,$sector_id=null,$sub_sector_id=null,$rubro_unificado_id=null,$rubro_id=null,$hectarias=null)
	{
		$mostrar=0;
		$d = $this->Finca_base->find('first',array('conditions'=>array('Finca_base.id'=>$finca_base_id)));
		$this->set('datos',$d);
		if(empty($finca_base_id))
		{
			$this->Json->mensaje('','LA UNIDAD PRODUCTIVA ES OBLIGATORIA','ERROR','finca_base_id');
		}
		else if(empty($sector_id))
		{
				$this->Json->monta_imagem('','sector_id');
				$this->Json->mensaje('','EL SECTOR DEL RUBRO A CULTIVAR ES OBLIGATORIO','ERROR','sector_id');
		}
		else if(empty($sub_sector_id))
		{
				$this->Json->monta_imagem('','sub_sector_id');			
				$this->Json->mensaje('','EL SUB SECTOR DEL RUBRO A CULTIVAR ES OBLIGATORIO','ERROR','sub_sector_i');
		}
		else if(empty($rubro_unificado_id))
		{
				$this->Json->monta_imagem('','rubro_unificado_id');
				$this->Json->mensaje('','EL RUBRO UNIFICADO DEL RUBRO A CULTIVAR ES OBLIGATORIO','ERROR','rubro_unificado_id');
		}
		else if(empty($rubro_id))
		{
				$this->Json->monta_imagem('','rubro_id');
				$this->Json->mensaje('','EL RUBRO A CULTIVAR ES OBLIGATORIO','ERROR','rubro_id');
		}
		else if(empty($hectarias))
		{
				$this->Json->monta_imagem('','hectarias');
				$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS A CULTIVAR ES OBLIGATORIO','ERROR','hectarias');
		}
		else
		{

				if($this->valida_rubro_finca($finca_base_id, $rubro_id))
				{
						if($this->valida_hectarias_disponibles($finca_base_id, $hectarias))
						{
							$data['Dato_productivo_base']['sector_id']=$sector_id;
							$data['Dato_productivo_base']['sub_sector_id']=$sub_sector_id;
							$data['Dato_productivo_base']['rubro_unificado_id']=$rubro_unificado_id;
							$data['Dato_productivo_base']['rubro_id']=$rubro_id;
							$data['Dato_productivo_base']['hectarias']=$hectarias;
							$data['Dato_productivo_base']['finca_base_id']=$finca_base_id;
							if ($this->Dato_productivo_base->save($data))
					 		{
									$id=$this->Dato_productivo_base->id;
									$this->Json->mensaje('','Rubro Cargado Exitosamente','EXITO','vacio');
									$hec_asig= $this->devuelve_hectarias_asignadas_a_finca($finca_base_id,1);
									$total= round(($hec_asig+$hectarias),2);
					$d = $this->Finca_base->find('first',array('fields'=>array('Finca_base.has_productivas'),'conditions'=>array('Finca_base.id'=>$finca_base_id)));
									$dispo= $d['Finca_base']['has_productivas']- $total;
									echo "<script type=\"text/javascript\" language=\"javascript\">
									document.getElementById('disponibles').value='$dispo';
									</script>";		
							}
							else
							{
								$this->Json->mensaje('','OCURRIO UN ERROR AL ASIGNAR EL RUBRO A LA UNIDAD PRODUCTIVA','ERROR','hectarias');
							}
						}
						else
						{
					
								$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS A CULTIVAR SOBREPASA LA CANTIDAD DE HECTARIAS PRODUCTIVAS','ERROR','hectarias');
						}
				}
				else
				{
						$this->Json->mensaje('','EL RUBRO YA ESTA ASOCIADO A LA UNIDAD PRODUCTIVA','ERROR','rubro_id');
				}
		}
		$this->buscar_rubros_cargados_finca_base($finca_base_id);
		$this->set('mostrar',$mostrar);
		$this->render('buscar_rubros_cargados_finca_base');
	}

	function buscar_rubros_cargados_finca_base($finca_base_id)
	{
		$datos=$this->Dato_productivo_base->find('all',array('conditions'=> array("Dato_productivo_base.finca_base_id"=>$finca_base_id)));
		$this->set('lista_datos_productivos_finca',$datos);
	}

	function quitar_rubro($id_fb, $id_dpb)
	{
		$this->set('id_finca_vista',$this->For->id('',$id_dpb));
		$sql="delete from dato_productivo_bases where id = ".$this->For->id('',$id_dpb);
		$this->Dato_productivo_base->query($sql);
		$this->Json->mensaje('','RUBRO ELIMINADO DE LA UNIDAD PRODUCTIVA EXITOSAMENETE','EXITO','vacio');
		$this->buscar_rubros_cargados_finca_base($this->For->id('',$id_fb));

		$hec_asig= $this->devuelve_hectarias_asignadas_a_finca($this->For->id('',$id_fb),1);
		$total= round(($hec_asig),2);
		$d = $this->Finca_base->find('first',array('fields'=>array('Finca_base.has_productivas'),'conditions'=>array('Finca_base.id'=>$this->For->id('',$id_fb))));

		$dispo= $d['Finca_base']['has_productivas']- $total;
		echo "<script type=\"text/javascript\" language=\"javascript\">document.getElementById('disponibles').value='$dispo';</script>";		
		$this->render('buscar_rubros_cargados_finca_base');
	}


	public function nueva_finca($id_finca_anterior=null) 
	{
			$this->set('finca_base_id',$id_finca_anterior);
			if($this->devuelve_hectarias_asignadas_a_finca($id_finca_anterior)==0)
			{
					echo "<script type=\"text/javascript\" language=\"javascript\">
				//document.getElementById('ver_datos_productivos').style.display='none';
				//document.getElementById('ver_rubros_a_cargar').style.display='block';
				</script>";
				$d = $this->Finca_base->find('first',array('conditions'=>array('Finca_base.id'=>$id_finca_anterior)));
				$this->set('datos',$d);
				$this->set('productivas',$d['Finca_base']['has_productivas']);
				$this->ver_fincas_base_productor($d['Finca_base']['cedrif']);
				$this->Json->mensaje('','Debes asignar al menos un rubro a la unidad productiva','ERROR','sector_id');
				$this->set('lista_municipios',$this->Utilitario->lista_municipios($d['Finca_base']['estado_id']));
				$this->set('lista_parroquias',$this->Utilitario->lista_parroquias($d['Finca_base']['municipio_id']));
				$this->set('lista_sector_productivo',$this->Utilitario->lista_sector_productivo());
				$this->set('nueva_finca',2);
			}
			else
			{
					$da = $this->Finca_base->find('first',array('fields'=>array('Finca_base.cedrif'),'conditions'=>array('Finca_base.id'=>$id_finca_anterior)));
					$this->ver_fincas_base_productor($da['Finca_base']['cedrif']);
				echo "<script type=\"text/javascript\" language=\"javascript\">
				document.getElementById('ver_datos_productivos').style.display='block';
				//document.getElementById('ver_rubros_a_cargar').style.display='none';
				</script>";
				$this->set('nueva_finca',1);
				
			}
			$this->set('lista_estados',$this->Utilitario->lista_estados());
			$this->set('lista_tenencia_tierra',$this->Utilitario->lista_tenencias());
			
	}

	function quitar_finca($id_fb,$cedrif)
	{
			$this->Finca_base->query("begin");
			$sql="delete from dato_productivo_bases where finca_base_id = ".$this->For->id('',$id_fb);
			$this->Dato_productivo_base->query($sql);
			$sql="delete from finca_bases where id = ".$this->For->id('',$id_fb);
			$this->Finca_base->query($sql);
			
			$this->Finca_base->query("commit");
			$this->Json->mensaje('','UNIDAD PRODUCTIVA ELIMINADA EXITOSAMENETE','EXITO','vacio');
			$this->ver_fincas_base_productor($this->For->id('',$cedrif));
			$this->render('lista_unidades_productivas');
	}

	public function ver_fincas_base_productor($cedrif,$status=1)
	{
		$datos=$this->Finca_base->find('all',array('conditions'=> array("Finca_base.cedrif"=>$cedrif,"Finca_base.estatus"=>$status)));
		for($j=0; $j <count($datos);$j++)
		{
			$datos[$j]['Rubro']['rubros']=$this->ver_rubro_fincas_base($datos[$j]['Finca_base']['id']);
		}
		$this->set('lista_datos_fincas',$datos);
	}
	
	function guardar()
	{
			$data=$this->For->data($this->request->data);
	    $this->Json->empyt('',$data,array('telefono_n_h','correo_n_h','tcelular_h','referencia_h','otro_telefono_h','cantidad_ha'),1);

			if($this->Json->empyt_capa('',$data,array('tipo_productor_h','cedrif_h','nombre_h','apellido_h','fecha_n_h','sexo_h',
'grado_id_h','beneficiarios_h'),'capa1',$data['formulario']))
			{
			    $this->Json->mensaje('','Faltan Datos Basicos del Productor ','ERROR');
			}
			else if($this->Json->empyt_capa('',$data,array('estado_id_h','municipio_id_h','parroquia_id_h','direccion_h'),'capa2',$data['formulario']))
			{
			    $this->Json->mensaje('','Faltan Datos de Ubicacion de Vivienda del Productor','ERROR');
			}
			else if($this->Json->correo('',$data['correo_n_h'],'correo_n_h'))
			{
					$this->Json->activarcapa(1,$this->request->data['formulario']);
			}
			else if($this->Json->telefono('',$data['telefono_n_h'],'telefono_n_h'))
			{
					$this->Json->activarcapa(1,$this->request->data['formulario']);
			}
			else if($this->Json->celular('',$data['tcelular_h'],'tcelular_h'))
			{
					$this->Json->activarcapa(1,$this->request->data['formulario']);
			}
			else if($this->Json->telefono('',$data['otro_telefono_h'],'otro_telefono_h'))
			{
					$this->Json->activarcapa(1,$this->request->data['formulario']);
			}
			else if ($this->Json->checkdate('',$data['fecha_n_h'],'fecha_n_h'))
			{
				  $this->Json->mensaje('','LA FECHA DE NACIMIENTO PROPORCIONADA NO ES VALIDA','ERROR','fecha');
					$this->Json->activarcapa(1,$this->request->data['formulario']);
			}
			else if (empty($data['telefono_n_h']) && empty($data['tcelular_h']) && empty($data['otro_telefono_h']))
			{
				  $this->Json->mensaje('','AL MENOS UNO DE LOS 3 TELEFONOS DEBE SER INDICADO','ERROR','tcelular_h');
					$this->Json->monta_imagem('','telefono_n_h');$this->Json->monta_imagem('','tcelular_h');$this->Json->monta_imagem('','otro_telefono_h');
					$this->Json->activarcapa(1,$this->request->data['formulario']);
			}
			else
			{
					$fb = $this->Finca_base->find('all',array('fields'=>array('Finca_base.id'),'conditions'=>array('Finca_base.cedrif'=>$data['cedrif_h'])));
					if(count($fb)>0)
					{
							//$this->Json->verifica('Usuario','cedula',$data['cedula'],'cedula')
							if(!$this->Json->verifica('Productor','ced_rif',$data['cedrif_h'],'cedrif'))
							{
									if(isset($data['tienda_id']) && !empty($data['tienda_id'])) $tienda_id=$data['tienda_id'];
									else $tienda_id=$this->For->id('',$this->Session->read('tienda_id'));
									$d['Productor']['nombre']=$data['nombre_h'];
									$d['Productor']['apellido']=$data['apellido_h'];
									$d['Productor']['tlf_casa']=$data['telefono_n_h'];
									$d['Productor']['tlf_celular']=$data['tcelular_h'];
									$d['Productor']['otro_telefono']=$data['otro_telefono_h'];
									$d['Productor']['fecha_nacimiento']=$this->Utilitario->guar_fecha($data['fecha_n_h']);
									$d['Productor']['sexo']=$data['sexo_h'];
									$d['Productor']['ced_rif']=$data['cedrif_h'];
									$d['Productor']['tipo']=$data['tipo_productor_h'];
									$d['Productor']['correo']=$data['correo_n_h'];
									$d['Productor']['grado_instruccion_id']=$data['grado_id_h'];
									$d['Productor']['beneficiarios']=$data['beneficiarios_h'];
									$d['Productor']['estado_id']=$data['estado_id_h'];
									$d['Productor']['municipio_id']=$data['municipio_id_h'];
									$d['Productor']['parroquia_id']=$data['parroquia_id_h'];
									$d['Productor']['direccion']=$data['direccion_h'];
									$d['Productor']['referencia']=$data['referencia_h'];
									$d['Productor']['tienda_id']=$tienda_id;
									$d['Productor']['usuario_id']=$this->For->id('',$this->Session->read('usuario_id'));
									$this->Productor->query('BEGIN WORK');
									if ($this->Productor->save($d))
									{
											$id_porductor=$this->Productor->id;
											$ban=1;
											$fb = $this->Finca_base->find('all',array(
'fields'=>array('Finca_base.estado_id','Finca_base.municipio_id','Finca_base.parroquia_id','Finca_base.direccion','Finca_base.latitud',
'Finca_base.longitud','Finca_base.cantidad_has','Finca_base.has_productivas','Finca_base.has_estimadas','Finca_base.tenencia_id','Finca_base.nombre','Finca_base.id'),
'conditions'=>array('Finca_base.cedrif'=>$data['cedrif_h'])));

											
											if(count($fb)>0)
											{
													for($i=0; $i< count($fb);$i++)
													{
															if($ban==1)
															{
																	$d=null;
																	$d['Finca']['productor_id']=$id_porductor;
																	$d['Finca']['estado_id']=$fb[$i]['Finca_base']['estado_id'];
																	$d['Finca']['municipio_id']=$fb[$i]['Finca_base']['municipio_id'];
																	$d['Finca']['parroquia_id']=$fb[$i]['Finca_base']['parroquia_id'];
																	$d['Finca']['direccion']=$fb[$i]['Finca_base']['direccion'];
																	$d['Finca']['latitud']=$fb[$i]['Finca_base']['latitud'];
																	$d['Finca']['longitud']=$fb[$i]['Finca_base']['longitud'];
																	$d['Finca']['cantidad_has']=$fb[$i]['Finca_base']['cantidad_has'];
																	$d['Finca']['has_productivas']=$fb[$i]['Finca_base']['has_productivas'];
																	$d['Finca']['has_estimadas']=$fb[$i]['Finca_base']['has_estimadas'];
																	$d['Finca']['tenencia_id']=$fb[$i]['Finca_base']['tenencia_id'];
																	$d['Finca']['nombre']=$fb[$i]['Finca_base']['nombre'];
																	if ($this->Finca->saveall($d))
																	{
																			$id_fb=$fb[$i]['Finca_base']['id'];
																			$id_finca=$this->Finca->id;
																			$dpb= $this->Dato_productivo_base->find('all',array(
'fields'=>array('Dato_productivo_base.sector_id','Dato_productivo_base.sub_sector_id',
'Dato_productivo_base.rubro_unificado_id','Dato_productivo_base.rubro_id','Dato_productivo_base.hectarias'),
'conditions'=>array('Dato_productivo_base.finca_base_id'=>$id_fb)));
																			if(count($dpb)>0)
																			{
																					for($z=0; $z< count($dpb);$z++)
																					{
																							$d=null;
																							$d['Dato_productivo']['sector_id']=$dpb[$z]['Dato_productivo_base']['sector_id'];
																							$d['Dato_productivo']['sub_sector_id']=$dpb[$z]['Dato_productivo_base']['sub_sector_id'];
																							$d['Dato_productivo']['rubro_unificado_id']=$dpb[$z]['Dato_productivo_base']['rubro_unificado_id'];
																							$d['Dato_productivo']['rubro_id']=$dpb[$z]['Dato_productivo_base']['rubro_id'];
																							$d['Dato_productivo']['hectarias']=$dpb[$z]['Dato_productivo_base']['hectarias'];
																							$d['Dato_productivo']['finca_id']=$id_finca;
																							if ($this->Dato_productivo->saveall($d))
																							{
																									$ban*=1;
																							}
																							else
																							{
																									$ban=0;
																									$error='Ocurrio un Error Asociando EL RUBRO A LA UNIDAD PRODUCTIVA';
																									break;
																							}
																					}
																			}
																			else
																			{
																					$ban=0;
																					$error='LA UNIDAD PRODUCTIVA '.$fb[$i]['Finca_base']['nombre'].' DEBE TENER AL MENOS UN RUBRO ASOCIADO';
																					break;
																			}
																	}
																	else
																	{
																		$ban=0;
																		$error='Ocurrio un Error Guardando LA UNIDAD PRODUCTIVA';
																		break;
																	}
															}
															else break;
													}
													if($ban==1)
													{
								$fbbb = $this->Finca_base->find('all',array('fields'=>array('Finca_base.id'),'conditions'=>array('Finca_base.cedrif'=>$data['cedrif_h'])));

															for($yy=0;$yy<count($fbbb);$yy++)
															{
																	$sql='delete from dato_productivo_bases where finca_base_id='.$fbbb[$yy]['Finca_base']['id'];
																	$this->Finca_base->query($sql);
																	$sql='delete from finca_bases where id='.$fbbb[$yy]['Finca_base']['id'];
																	$this->Finca_base->query($sql);
															}
															$this->Productor->query('COMMIT');
															$id_porductor = base64_encode($id_porductor);
															$id_porductor = base64_encode($id_porductor);
															$id_porductor = base64_encode($id_porductor);
															$id_porductor = base64_encode($id_porductor);
															$id_porductor = base64_encode($id_porductor);
															echo "<script type='text/javascript'>document.getElementById('id_imprimir').value='$id_porductor';
ref='TARJETAPRODUCTIVA/pdf_produtor/$id_porductor'; 
		window.open(ref,'IMPRIMIR','width=900,height=600');
</script>";
															$this->Json->mensaje('','Productor Cargado Exitosamente','EXITO','vacio');
															$this->Json->activarcapa(4,$this->request->data['formulario']);
															$this->log();
													}
													else
													{
															$this->Productor->query('ROLLBACK');
															$this->Json->mensaje('',$error,'ERROR','vacio');
															$this->Json->activarcapa(3,$this->request->data['formulario']);
													}
											}
											else
											{
													$this->Productor->query('ROLLBACK');
													$this->Json->mensaje('','EL PRODUCTOR DEBE TENER AL MENOS UNA UNIDAD PRODUCTIVA ASOCIADA','ERROR','vacio');
													$this->Json->activarcapa(3,$this->request->data['formulario']);
											}
									}
									else
									{
											$this->Json->mensaje('','OCURRIO UN ERROR AL GUARDAR PRODUCTOR','ERROR','vacio');
											$this->Json->activarcapa(3,$this->request->data['formulario']);
									}

							}
							else
							{
									$this->Json->mensaje('','EL '.$this->request->data['cedrif_h'].' YA SE ENCUENTRA REGISTRADO EN EL SISTEMA','ERROR','vacio');
									$this->Json->activarcapa(1,$this->request->data['formulario']);
							}
					}
					else
					{
							$this->Json->activarcapa(3,$this->request->data['formulario']);
							$this->Json->mensaje('','EL PRODUCTOR DEBE TENER AL MENOS UNA UNIDAD PRODUCTIVA ASOCIADA','ERROR','vacio');
					}
			}
			$this->listado();
			$this->render('listado');
	}





















	function guardar_modificar()
	{
			$data=$this->request->data;


	    $this->Json->empyt('',$data,array('telefono_n_h','correo_n_h'),1);

			if($this->Json->empyt_capa('',$data,array('tipo_productor_h','nac_h','cedrif_h','nombre_h','apellido_h','fecha_n_h','sexo_h','tcelular_h',
'grado_id_h','beneficiarios_h'),'capa1',$data['formulario']))
			{
			    $this->Json->mensaje('','Faltan Datos Basicos del Productor ','ERROR');
			}
			else if(!empty($d['correo_n_h']) && $this->Json->correo('',$data['correo_n_h'],'correo_n_h')){
				$this->Json->activarcapa(1,$data['formulario']);
				$this->Json->mensaje('','Error en Direccion de Correo Electronico','ERROR','correo_n_h');
			}
			else if($this->Json->empyt_capa('',$data,array('estado_id_h','municipio_id_h','parroquia_id_h','direccion_h'),'capa2',$data['formulario']))
			{
				$this->Json->mensaje('','Faltan de Ubicacion de Habitacion del Productor','ERROR');
			}/*
			else if ($this->Json->checkdate('',$this->request->data['fecha_n_h'])!=1){
    				$this->Json->mensaje('','LA FECHA DE NACIMIENTO PROPORCIONADA NO ES VALIDA','ERROR','fecha_n_h');
			}* /
			
			//else if($this->Json->celular('',$data['tcelular_h'],'tcelular_h')){echo $v='telefono';}


			//else if(empty($data['formulario'])){
			//echo '';
			}
*/
			else
			{
					$id_fino=$this->For->id('',$data['id_h']);
					$produc = $this->Productor->find('first',array('fields'=>array('Productor.id'),'conditions'=>array('Productor.id'=>$id_fino)));
					if(isset($produc['Productor']['id']) && $produc['Productor']['id'] > 0)
					{
							$fb = $this->Finca_base->find('all',array('fields'=>array('Finca_base.id'),'conditions'=>array('Finca_base.cedrif'=>$data['cedrif_h'])));
							$f = $this->Finca->find('all',array('fields'=>array('Finca.id'),'conditions'=>array('Finca.productor_id'=>$id_fino)));
//echo count($fb)." >0 || ".count($f)." > 0";
							if(count($fb)>0 || count($f)>0)
							{
									//if($this->valida_rif($this->request->data['nac_h'].$this->request->data['cedrif_h']))
									if($this->valida_rif($this->request->data['cedrif_h'],$id_fino))
									{
											$d=$this->request->data;
											$data['Productor']['id']=$id_fino;
											$data['Productor']['nombre']=$this->Utilitario->mayuscula($d['nombre_h']);
											$data['Productor']['apellido']=$this->Utilitario->mayuscula($d['apellido_h']);
											$data['Productor']['tlf_casa']=$d['telefono_n_h'];
											$data['Productor']['tlf_celular']=$d['tcelular_h'];
											$data['Productor']['fecha_nacimiento']=$this->Utilitario->guar_fecha($d['fecha_n_h']);
											$data['Productor']['sexo']=$d['sexo_h'];
											//$data['Productor']['ced_rif']=$d['nac_h'].$d['cedrif_h'];
											$data['Productor']['ced_rif']=$this->Utilitario->mayuscula($d['cedrif_h']);
											$data['Productor']['tipo']=$d['tipo_productor_h'];
											if(isset($d['correo_n_h'])) $data['Productor']['correo']=$d['correo_n_h'];
											if(isset($d['grado_id_h']) && $d['grado_id_h']> 0) $data['Productor']['grado_instruccion_id']=$d['grado_id_h'];
											if(isset($d['beneficiarios_h']) && $d['beneficiarios_h']> 0) $data['Productor']['beneficiarios']=$d['beneficiarios_h'];
											$data['Productor']['estado_id']=$d['estado_id_h'];
											$data['Productor']['municipio_id']=$d['municipio_id_h'];
											$data['Productor']['parroquia_id']=$d['parroquia_id_h'];
											$data['Productor']['direccion']=$this->Utilitario->mayuscula($d['direccion_h']);
					
											$this->Productor->query('BEGIN WORK');
											if ($this->Productor->save($data))
											{
													$id_porductor=$this->Productor->id;
													$ban=1;
													$fb = $this->Finca_base->find('all',array(
		'fields'=>array('Finca_base.estado_id','Finca_base.municipio_id','Finca_base.parroquia_id','Finca_base.direccion','Finca_base.latitud',
		'Finca_base.longitud','Finca_base.cantidad_has','Finca_base.has_productivas','Finca_base.has_estimadas','Finca_base.tenencia_id','Finca_base.nombre','Finca_base.id'),
		'conditions'=>array('Finca_base.cedrif'=>$d['cedrif_h'])));
													if(count($fb)>0 || count($f)>0)
													{
															for($i=0; $i< count($fb);$i++)
															{
																	if($ban==1)
																	{
																			$data=null;
																			$data['Finca']['productor_id']=$id_porductor;
																			$data['Finca']['estado_id']=$fb[$i]['Finca_base']['estado_id'];
																			$data['Finca']['municipio_id']=$fb[$i]['Finca_base']['municipio_id'];
																			$data['Finca']['parroquia_id']=$fb[$i]['Finca_base']['parroquia_id'];
																			$data['Finca']['direccion']=$fb[$i]['Finca_base']['direccion'];
																			$data['Finca']['latitud']=$fb[$i]['Finca_base']['latitud'];
																			$data['Finca']['longitud']=$fb[$i]['Finca_base']['longitud'];
																			$data['Finca']['cantidad_has']=$fb[$i]['Finca_base']['cantidad_has'];
																			$data['Finca']['has_productivas']=$fb[$i]['Finca_base']['has_productivas'];
																			$data['Finca']['has_estimadas']=$fb[$i]['Finca_base']['has_estimadas'];
																			$data['Finca']['tenencia_id']=$fb[$i]['Finca_base']['tenencia_id'];
																			$data['Finca']['nombre']=$fb[$i]['Finca_base']['nombre'];

		
																			if ($this->Finca->saveall($data,array('atomic' => true)))
																			{
																					$id_fb=$fb[$i]['Finca_base']['id'];
																					$id_finca=$this->Finca->id;
																					$dpb= $this->Dato_productivo_base->find('all',array(
		'fields'=>array('Dato_productivo_base.sector_id','Dato_productivo_base.sub_sector_id',
		'Dato_productivo_base.rubro_unificado_id','Dato_productivo_base.rubro_id','Dato_productivo_base.hectarias'),
		'conditions'=>array('Dato_productivo_base.finca_base_id'=>$id_fb)));
																					if(count($dpb)>0)
																					{
																							for($z=0; $z< count($dpb);$z++)
																							{
																									$data=null;
																									$data['Dato_productivo']['sector_id']=$dpb[$z]['Dato_productivo_base']['sector_id'];
																									$data['Dato_productivo']['sub_sector_id']=$dpb[$z]['Dato_productivo_base']['sub_sector_id'];
																									$data['Dato_productivo']['rubro_unificado_id']=$dpb[$z]['Dato_productivo_base']['rubro_unificado_id'];
																									$data['Dato_productivo']['rubro_id']=$dpb[$z]['Dato_productivo_base']['rubro_id'];
																									$data['Dato_productivo']['hectarias']=$dpb[$z]['Dato_productivo_base']['hectarias'];
																									$data['Dato_productivo']['finca_id']=$id_finca;
																									if ($this->Dato_productivo->saveall($data))
																									{
																											$ban*=1;
																									}
																									else
																									{
																											$ban=0;
																											$error='Ocurrio un Error Asociando EL RUBRO A LA UNIDAD PRODUCTIVA';
																											break;
																									}
																							}
																					}
																					else
																					{
																							$ban=0;
																							$error='LA UNIDAD PRODUCTIVA '.$fb[$i]['Finca_base']['nombre'].' DEBE TENER AL MENOS UN RUBRO ASOCIADO';
																							break;
																					}
																			}
																			else
																			{
																				$ban=0;
																				$error='Ocurrio un Error Guardando LA UNIDAD PRODUCTIVA';
																				break;
																			}
																	}
																	else break;
															}
															if($ban==1)
															{
																/*$id_acc=$this->Productor->id;
																	$this->data['Bitacora']['usuario_id']=$this->Session->read('usuario_id');
																	$this->data['Bitacora']['fecha']=$this->f_actual();
																	$this->data['Bitacora']['hora']=date('h:i:s:a');
																	$this->data['Bitacora']['accion']="Guardar";
																	$this->data['Bitacora']['modelo']='Productor';
																	$this->data['Bitacora']['accion_id']= $id_acc;
																	if($this->Bitacora->save($this->data))
																	{
																	}
																	else
																	{
																	}*/
																	$fbbb = $this->Finca_base->find('all',array('fields'=>array('Finca_base.id'),'conditions'=>array('Finca_base.cedrif'=>$d['cedrif_h'])));
																	for($yy=0;$yy<count($fbbb);$yy++)
																	{
																			$sql='delete from dato_productivo_bases where finca_base_id='.$fbbb[$yy]['Finca_base']['id'];
																			$this->Finca_base->query($sql);
																			$sql='delete from finca_bases where id='.$fbbb[$yy]['Finca_base']['id'];
																			$this->Finca_base->query($sql);
																	}
		
																	$this->Productor->query('COMMIT');
																	$this->Json->mensaje('','Datos Del Productor Modificado Exitosamente','EXITO','vacio');
																	$this->Json->activarcapa(4,$this->request->data['formulario']);
																	$this->log();
															}
															else
															{
																	$this->Productor->query('ROLLBACK');
																	$this->Json->mensaje('',$error,'ERROR','vacio');
															}
													}
													else
													{
															$this->Productor->query('ROLLBACK');
															$this->Json->mensaje('','EL PRODUCTOR DEBE TENER AL MENOS UNA UNIDAD PRODUCTIVA ASOCIADA','ERROR','vacio');
													}
											}
											else
											{
													$this->Json->mensaje('','OCURRIO UN ERROR AL GUARDAR PRODUCTOR','ERROR','vacio');
											}

									}
									else
									{
											$this->Json->monta_imagem('','cedrif_h');
											$this->Json->mensaje('','EL '.$this->request->data['cedrif_h'].' YA SE ENCUENTRA REGISTRADO EN EL SISTEMA','ERROR','cedrif');
											$this->Json->activarcapa(1,$this->request->data['formulario']);
									}
							}
							else
							{
							
									$this->Json->mensaje('','EL PRODUCTOR DEBE TENER AL MENOS UNA UNIDAD PRODUCTIVA ASOCIADA','ERROR','vacio');
							}
					}
					else
					{
							$this->Json->mensaje('','ESTAS TRATANDO DE VIOLAR LA SEGURIDAD DE LA EMPRESA','ERROR','vacio');
					}
			}
			$this->listado();
			$this->render('listado');
	}


	
	
	
	public function nuevo($div='vista',$divlistado='vista') 
	{	
		$this->set('div',$div);
		$this->set('divlistado',$divlistado);
		$this->set('lista_rif',$this->Utilitario->lista_rif());
		$this->set('lista_sexo',$this->Utilitario->lista_sexo('L'));
		$this->set('lista_cod_celular',$this->Utilitario->lista_cod_celular());
		$this->set('lista_estados',$this->Utilitario->lista_estados());
		$this->set('lista_sector_productivo',$this->Utilitario->lista_sector_productivo());
		$this->set('lista_tenencia_tierra',$this->Utilitario->lista_tenencias());
		$this->set('lista_si_no',$this->Utilitario->lista_si_no());
		$this->set('lista_tipo',$this->Utilitario->lista_tipo());
		$this->set('lista_grados',$this->Utilitario->lista_grados());
		$this->set('lista_beneficiarios',$this->Utilitario->lista_numeros(1,20,1));
	}

	public function ver_rubro_fincas_base($id_fb)
	{
		$da='';
		$datos=$this->Dato_productivo_base->find('all',array('conditions'=> array("Dato_productivo_base.finca_base_id"=>$id_fb)));
		for($j=0; $j <count($datos);$j++)
		{
			if(($j+1)==count($datos)) $da.= $datos[$j]['Rubro']['nombre']." (".$datos[$j]['Dato_productivo_base']['hectarias'].")";
			else $da.= $datos[$j]['Rubro']['nombre']." (".$datos[$j]['Dato_productivo_base']['hectarias'].")<br />";
		}
		return $da;
	}

	public function ver_rubro_fincas($id_fb)
	{
		$da='';
		$datos=$this->Dato_productivo->find('all',array('conditions'=> array("Dato_productivo.finca_id"=>$id_fb)));
		for($j=0; $j <count($datos);$j++)
		{
			if(($j+1)==count($datos)) $da.= $datos[$j]['Rubro']['nombre']." (".$datos[$j]['Dato_productivo']['hectarias'].")";
			else $da.= $datos[$j]['Rubro']['nombre']." (".$datos[$j]['Dato_productivo']['hectarias'].")<br />";
		}
		return $da;
	}

	

	

	public function ver_fincas_productor($productor_id,$status=1)
	{
		$datos=$this->Finca->find('all',array('conditions'=> array("Finca.productor_id"=>$productor_id,"Finca.estatus"=>$status)));
		for($j=0; $j <count($datos);$j++)
		{
			$datos[$j]['Rubro']['rubros']=$this->ver_rubro_fincas($datos[$j]['Finca']['id']);
		}
		$this->set('lista_datos_fincas_productor',$datos);
	}

	

	public function nueva_finca_modificar($id_finca=null,$td=1,$valida=0) 
	{	
		if($valida==1)
		{
				$id_finca_anterior=$this->For->id('',$id_finca);
				if($this->devuelve_hectarias_asignadas_a_finca($id_finca_anterior)==0)
				{
						echo "<script type=\"text/javascript\" language=\"javascript\">
					//document.getElementById('ver_datos_productivos').style.display='none';
					//document.getElementById('ver_rubros_a_cargar_nuevo').style.display='block';
					</script>";
					$this->Json->mensaje('','Debes asignar al menos un rubro a la unidad productiva','ERROR','sector_id');
				}
				else
				{
						$da = $this->Finca_base->find('first',array('fields'=>array('Finca_base.cedrif'),'conditions'=>array('Finca_base.id'=>$id_finca_anterior)));
						$this->ver_fincas_base_productor($da['Finca_base']['cedrif']);
					echo "<script type=\"text/javascript\" language=\"javascript\">
					document.getElementById('ver_datos_productivos').style.display='block';
					//document.getElementById('ver_rubros_a_cargar_nuevo').style.display='none';
					</script>";
				}
		}
		else
		{
				echo "<script type=\"text/javascript\" language=\"javascript\">
					document.getElementById('ver_datos_productivos').style.display='block';
					//document.getElementById('ver_rubros_a_cargar_nuevo').style.display='none';
				</script>";
		}
		if($td==1)
		{
				$da = $this->Finca->find('first',array('fields'=>array('Finca.productor_id','Productor.ced_rif'),'conditions'=>array('Finca.id'=>$this->For->id('',$id_finca))));
				$this->ver_fincas_productor($da['Finca']['productor_id']);
				$this->ver_fincas_base_productor($da['Productor']['ced_rif']);
		}
		else
		{
			$da = $this->Finca_base->find('first',array('fields'=>array('Finca_base.cedrif'),'conditions'=>array('Finca_base.id'=>$this->For->id('',$id_finca))));
			$this->ver_fincas_base_productor($da['Finca_base']['cedrif']);
			$dia = $this->Productor->find('first',array('fields'=>array('Productor.id'),'conditions'=>array('Productor.ced_rif'=>$da['Finca_base']['cedrif'])));
		
			$this->ver_fincas_productor($dia['Productor']['id']);
			$this->ver_fincas_base_productor($da['Finca_base']['cedrif']);
		}
		$this->set('lista_estados',$this->Utilitario->lista_estados());
		$this->set('lista_tenencia_tierra',$this->Utilitario->lista_tenencias());
	}

/*	public function index() 
	{
		$this->layout = 'principal';
		$this->set('lista_rif',$this->Utilitario->lista_rif());
		$this->set('lista_sexo',$this->Utilitario->lista_sexo('L'));
		$this->set('lista_cod_celular',$this->Utilitario->lista_cod_celular());
		$this->set('lista_estados',$this->Utilitario->lista_estados());
		$this->set('lista_sector_productivo',$this->Utilitario->lista_sector_productivo());
		$this->set('lista_tenencia_tierra',$this->Utilitario->lista_tenencias());
		$this->set('lista_si_no',$this->Utilitario->lista_si_no());
		$this->set('lista_tipo',$this->Utilitario->lista_tipo());
		$this->set('lista_grados',$this->Utilitario->lista_grados());
		$this->set('lista_beneficiarios',$this->Utilitario->lista_numeros(1,20,1));
	}
*/
	

	public function ver_rubros_a_cargar_modificar($nombre_unidad=null,$cedrif_h=null,$tenencia_id=null,$estado_finca_id=null,$municipio_finca_id=null,$parroquia_finca_id=null,$direccion=null,$latitud=null,$longitud=null,$cantidad_ha=null,$ha_productiva=null,$ha_estimada=null)
	{
		$this->ver_rubros_a_cargar($nombre_unidad,$cedrif_h,$tenencia_id,$estado_finca_id,$municipio_finca_id,$parroquia_finca_id,$cantidad_ha,$ha_productiva,$ha_estimada,$latitud,$longitud,$direccion);
		
	}

	public function ver_rubros_a_cargar_modificar_existente($id_finca)
	{
		$this->set('mostrar',1);
		$this->set('lista_sector_productivo',$this->Utilitario->lista_sector_productivo());
		$this->set('finca_id',$this->For->id('',$id_finca));
		$hec_asig= $this->devuelve_hectarias_asignadas_a_finca($this->For->id('',$id_finca),2);
		$total= round(($hec_asig),2);
		$d = $this->Finca->find('first',array('fields'=>array('Finca.has_productivas'),'conditions'=>array('Finca.id'=>$this->For->id('',$id_finca))));

		$dispo= $d['Finca']['has_productivas']- $total;
		echo "<script type=\"text/javascript\" language=\"javascript\">document.getElementById('disponibles').value='$dispo';</script>";		
		

		
		echo "<script type=\"text/javascript\" language=\"javascript\">
								
								document.getElementById('ver_cargar_rubro').style.display='block';
								</script>";
	}

	public function cargar_rubro_modificar_existente($finca_id=null,$sector_id=null,$sub_sector_id=null,$rubro_unificado_id=null,$rubro_id=null,$hectarias=null)
	{
		$finca_id= $this->For->id('',$finca_id);
		if(empty($finca_id))
		{
			
			$this->Json->mensaje('','LA UNIDAD PRODUCTIVA ES OBLIGATORIA','ERROR','finca_base_id');
		}
		else if(empty($sector_id))
		{
				$this->Json->monta_imagem('','sector_id');
				$this->Json->mensaje('','EL SECTOR DEL RUBRO A CULTIVAR ES OBLIGATORIO','ERROR','sector_id');
		}
		else if(empty($sub_sector_id))
		{
				$this->Json->monta_imagem('','sub_sector_id');			
				$this->Json->mensaje('','EL SUB SECTOR DEL RUBRO A CULTIVAR ES OBLIGATORIO','ERROR','sub_sector_i');
		}
		else if(empty($rubro_unificado_id))
		{
				$this->Json->monta_imagem('','rubro_unificado_id');
				$this->Json->mensaje('','EL RUBRO UNIFICADO DEL RUBRO A CULTIVAR ES OBLIGATORIO','ERROR','rubro_unificado_id');
		}
		else if(empty($rubro_id))
		{
				$this->Json->monta_imagem('','rubro_id');
				$this->Json->mensaje('','EL RUBRO A CULTIVAR ES OBLIGATORIO','ERROR','rubro_id');
		}
		else if(empty($hectarias))
		{
				$this->Json->monta_imagem('','hectarias');
				$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS A CULTIVAR ES OBLIGATORIO','ERROR','hectarias');
		}
		else
		{
				
				if($this->valida_rubro_finca($finca_id, $rubro_id,2))
				{
						if($this->valida_hectarias_disponibles($finca_id, $hectarias,2))
						{
							$data['Dato_productivo']['sector_id']=$sector_id;
							$data['Dato_productivo']['sub_sector_id']=$sub_sector_id;
							$data['Dato_productivo']['rubro_unificado_id']=$rubro_unificado_id;
							$data['Dato_productivo']['rubro_id']=$rubro_id;
							$data['Dato_productivo']['hectarias']=$hectarias;
							$data['Dato_productivo']['finca_id']=$finca_id;
							if ($this->Dato_productivo->save($data))
					 		{
									$id=$this->Dato_productivo->id;
									$this->Json->mensaje('','Rubro Cargado Exitosamente','EXITO','vacio');
									echo "<script type=\"text/javascript\" language=\"javascript\">
												document.getElementById('ver_cargar_rubro').style.display='none';
									</script>";
							}
							else
							{
									$this->Json->mensaje('','OCURRIO UN ERROR AL ASIGNAR EL RUBRO A LA UNIDAD PRODUCTIVA','ERROR','hectarias');
							}
						}
						else
						{
					
								$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS A CULTIVAR SOBREPASA LA CANTIDAD DE HECTARIAS PRODUCTIVAS','ERROR','hectarias');
						}
				}
				else
				{
						$this->Json->mensaje('','EL RUBRO YA ESTA ASOCIADO A LA UNIDAD PRODUCTIVA','ERROR','rubro_id');
				}
		}
		$this->buscar_rubros_cargados_finca($finca_id);
		$this->render('buscar_rubros_cargados_finca_base_modificado');
	

	}

	
	
	public function guardar_modificar_datos_finca($id_finca,$nombre_unidad=null,$cedrif_h=null,$tenencia_id=null,$estado_finca_id=null,$municipio_finca_id=null,$parroquia_finca_id=null,$direccion=null,$latitud=null,$longitud=null,$cantidad_ha=null,$ha_productiva=null,$ha_estimada=null) 
	{
			$mostrar=0;
		$id_bueno=$this->For->id('',$id_finca);
		if(empty($nombre_unidad))
		{
			$this->Json->monta_imagem('','nombre_unidad');
			$this->Json->mensaje('','EL NOMBRE DE LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','nombre_unidad');
		}
		else if(empty($tenencia_id))
		{
			$this->Json->monta_imagem('','tenencia_id');
			$this->Json->mensaje('','LA TENENCIA DE TIERRA ES OBLIGATORIA','ERROR','tenencia_id');
		}
		else if(empty($estado_finca_id))
		{
			$this->Json->monta_imagem('','estado_finca_id');
			$this->Json->mensaje('','EL ESTADO DONDE SE UBICA LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','estado_finca_id');
		}
		else if(empty($municipio_finca_id))
		{
			$this->Json->monta_imagem('','municipio_finca_id');
			$this->Json->mensaje('','EL MUNICIPIO DONDE SE UBICA LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','municipio_finca_id');
		}
		else if(empty($parroquia_finca_id))
		{
			$this->Json->monta_imagem('','parroquia_finca_id');
			$this->Json->mensaje('','La PARROQUIA DONDE SE UBICA LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','parroquia_finca_id');
		}
		else if(empty($direccion))
		{
			$this->Json->monta_imagem('','direccion_finca');
			$this->Json->mensaje('','LA DIRECCION DONDE SE UBICA LA UNIDAD PRODUCTIVA ES OBLIGATORIO','ERROR','direccion_finca');
		}
/*
		else if(empty($latitud))
		{
			echo "MUESTRA MENSAJE latitud";
			$this->Json->mensaje('','LA TENENCIA DE TIERRA ES OBLIGATORIA','ERROR','tenencia_id');
		}
		else if(empty($longitud))
		{
			echo "MUESTRA MENSAJE longitud";
			$this->Json->mensaje('','LA TENENCIA DE TIERRA ES OBLIGATORIA','ERROR','tenencia_id');
		}
*/
		else if(empty($cantidad_ha))
		{
			$this->Json->monta_imagem('','cantidad_ha');
			$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS EXISTENTES EN LA UNIDAD PRODUCTIVA ES OBLIGATORIA','ERROR','cantidad_ha');
		}
		else if(empty($ha_productiva))
		{
			$this->Json->monta_imagem('','ha_productiva');
			$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS PRODUCTIVAS EN LA UNIDAD PRODUCTIVA ES OBLIGATORIA','ERROR','ha_productiva');
		}
		else if($ha_productiva > $cantidad_ha)
		{
			$this->Json->monta_imagem('','ha_productiva');
			$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS PRODUCTIVAS NO PUEDEN SER MAYOR A LA CANTIDAD DE HECTARIAS DE LA UNIDAD PRODUCTIVA','ERROR','ha_productiva');
		}
		else if(empty($ha_estimada))
		{
			$this->Json->monta_imagem('','ha_estimada');
			$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS ESTIMADAS A SEMBRAR EN LA UNIDAD PRODUCTIVA ES OBLIGATORIA','ERROR','ha_estimada');
		}
		else if($ha_estimada > $ha_productiva)
		{
			$this->Json->monta_imagem('','ha_estimada');
			$this->Json->mensaje('','LA CANTIDAD DE HECTARIAS ESTIMADAS NO PUEDEN SER MAYOR A LA CANTIDAD DE HECTARIAS PRODUCTIVAS DE LA UNIDAD PRODUCTIVA','ERROR','ha_estimada');
		}
		else
		{
				
				if($this->valida_nombre_finca('Finca',$this->Utilitario->mayuscula($nombre_unidad),$parroquia_finca_id,$id_bueno))
				{
						$data['Finca']['id']=$id_bueno;
						$data['Finca']['nombre']=$this->Utilitario->mayuscula($nombre_unidad);
						$data['Finca']['estado_id']=$estado_finca_id;
						$data['Finca']['municipio_id']=$municipio_finca_id;
						$data['Finca']['parroquia_id']=$parroquia_finca_id;
						$data['Finca']['direccion']=$this->Utilitario->mayuscula($direccion);
						$data['Finca']['latidud']=$latitud;
						$data['Finca']['longitud']=$longitud;
						$data['Finca']['cantidad_has']=$cantidad_ha;
						$data['Finca']['has_productivas']=$ha_productiva;
						$data['Finca']['has_estimadas']=$ha_estimada;
						$data['Finca']['tenencia_id']=$tenencia_id;
			
						if ($this->Finca->save($data))
				 		{
							
								$mostrar=1;
								echo "<script type=\"text/javascript\" language=\"javascript\">
								document.getElementById('guarda_actualiza').style.display='none';
								document.getElementById('ver_datos_productivos').style.display='block';
								</script>";
								$this->Json->mensaje('','DATOS DE UNIDAD PRODUCTIVA MODIFICADOS EXITOSAMENTE','EXITO','vacio');
						}
						else
						{

							$this->Json->mensaje('','OCURRIO UN ERROR AL MODIFICAR LA UNIDAD PRODUCTIVA','ERROR','vacio');
							$mostrar=0;		
						}
				}
				else
				{
						$this->Json->mensaje('','LA UNIDAD PRODUCTIVA YA SE ENCUENTRA REGISTRADA EN EL SISTEMA','ERROR','nombre_unidad');
						$mostrar=0;		
				}
			
		}
		$da=$this->Finca->find('first',array('fields'=>array('Productor.id','Productor.ced_rif'),'conditions'=> array("Finca.id"=>$id_bueno)));
		$this->ver_fincas_productor($da['Productor']['id']);
		$this->ver_fincas_base_productor($da['Productor']['ced_rif']);
		$this->render('lista_unidades_productivas_modificar');
		

	}

	

	function buscar_rubros_cargados_finca($finca_base_id)
	{
		$datos=$this->Dato_productivo->find('all',array('conditions'=> array("Dato_productivo.finca_id"=>$finca_base_id)));
		$this->set('lista_datos_productivos_finca',$datos);
	}

	function valida_rubro_finca($finca_base_id, $rubro_id, $tipo=1)
	{
		if($tipo==1)
		{
				$da = $this->Dato_productivo_base->find('first',array('fields'=>array('Dato_productivo_base.id'),'conditions'=>array('Dato_productivo_base.finca_base_id'=>$finca_base_id,'Dato_productivo_base.rubro_id'=>$rubro_id)));
				if(isset( $da['Dato_productivo_base']['id']) and $da['Dato_productivo_base']['id']>0) return false;
				else return true;
		}
		else
		{
				$da = $this->Dato_productivo->find('first',array('fields'=>array('Dato_productivo.id'),'conditions'=>array('Dato_productivo.finca_id'=>$finca_base_id,'Dato_productivo.rubro_id'=>$rubro_id)));
				if(isset( $da['Dato_productivo']['id']) and $da['Dato_productivo']['id']>0) return false;
				else return true;
		}
		
	}

	function valida_hectarias_disponibles($finca_base_id, $hectarias_cultivo, $tipo=1)
	{
		$hec_asig= $this->devuelve_hectarias_asignadas_a_finca($finca_base_id,$tipo);
		$total= round(($hec_asig+$hectarias_cultivo),2);
		if($tipo==1)
		{
				
				$da = $this->Finca_base->find('first',array('fields'=>array('Finca_base.has_productivas'),'conditions'=>array('Finca_base.id'=>$finca_base_id)));
				if($total > $da['Finca_base']['has_productivas']) return false;
				else return true;
		}
		else
		{
				
				$da = $this->Finca->find('first',array('fields'=>array('Finca.has_productivas'),'conditions'=>array('Finca.id'=>$finca_base_id)));
				if($total > $da['Finca']['has_productivas']) return false;
				else return true;
		}
		
	}

	function devuelve_hectarias_asignadas_a_finca($finca_base_id,$tipo=1)
	{
		if($tipo==1)
		$datos=$this->Dato_productivo_base->find('all',array('fields'=>array('sum(Dato_productivo_base.hectarias) as total'),'conditions'=> array("Dato_productivo_base.finca_base_id"=>$finca_base_id)));
		else $datos=$this->Dato_productivo->find('all',array('fields'=>array('sum(Dato_productivo.hectarias) as total'),'conditions'=> array("Dato_productivo.finca_id"=>$finca_base_id)));
		if(!isset($datos[0][0]['total'])) $t=0;
		else $t=$datos[0][0]['total'];
		
		return $t;
	}

	function valida_nombre_finca($modelo,$nomb,$p_id, $id=null)
	{
		if(isset($id))
		{
			$condiciones=array($modelo.'.id !='=>$id,$modelo.'.nombre'=>$nomb,$modelo.'.parroquia_id'=>$p_id);
		}
		else
		{
			$condiciones=array($modelo.'.nombre'=>$nomb,$modelo.'.parroquia_id'=>$p_id);
		}
		$da = $this->$modelo->find('first',array('fields'=>array($modelo.'.id'),'conditions'=>$condiciones));

		if(isset($da[$modelo]['id']) && $da[$modelo]['id'] > 0 ) return false;
		else return true;
	}

	function valida_rif($rif, $id=null)
	{
		if(isset($id))
		{
			$condiciones=array('Productor.id !='=>$id,'Productor.ced_rif'=>$rif);
		}
		else
		{
			$condiciones=array('Productor.ced_rif'=>$rif);
		}
		$da = $this->Productor->find('first',array('fields'=>array('Productor.id'),'conditions'=>$condiciones));
		if(isset($da['Productor']['id']) && $da['Productor']['id'] > 0 ) return false;
		else return true;
	}
        
	
	

	
	function quitar_rubro_modificar($id_fb, $id_dpb)
	{
		$this->set('id_finca_vista',$this->For->id('',$id_dpb));
		$sql="delete from dato_productivos where id = ".$this->For->id('',$id_dpb);
		$this->Dato_productivo->query($sql);
		$this->Json->mensaje('','RUBRO ELIMINADO DE LA UNIDAD PRODUCTIVA EXITOSAMENETE','EXITO','vacio');
		$this->buscar_rubros_cargados_finca($this->For->id('',$id_fb));
		$this->render('buscar_rubros_cargados_finca_base');
	}

	

	function quitar_finca_modificar($id_fb,$cedrif=null)
	{
		if(isset($cedrif))
		{
				$ced=$this->For->id('',$cedrif);
					$da = $this->Productor->find('first',array('fields'=>array('Productor.id','Productor.ced_rif'),'conditions'=>array('Productor.ced_rif'=>$ced)));
					$this->Finca_base->query("begin");
					$sql="delete from dato_productivo_bases where finca_base_id = ".$this->For->id('',$id_fb);
					$this->Dato_productivo_base->query($sql);
					$sql="delete from finca_bases where id = ".$this->For->id('',$id_fb);
					$this->Finca->query($sql);
			
					$this->Finca->query("commit");
					$this->Json->mensaje('','UNIDAD PRODUCTIVA ELIMINADA EXITOSAMENETE','EXITO','vacio');
			
					$this->ver_fincas_productor($da['Productor']['id']);
					$this->ver_fincas_base_productor($da['Productor']['ced_rif']);
		}
		else
		{
				$da = $this->Finca->find('first',array('fields'=>array('Finca.productor_id','Productor.ced_rif'),'conditions'=>array('Finca.id'=>$this->For->id('',$id_fb))));

				$can = $this->Finca->find('count',array('conditions'=>array('Finca.productor_id'=>$da['Finca']['productor_id'])));
				if($can>1)
				{
					$this->Finca->query("begin");
					$sql="delete from dato_productivos where finca_id = ".$this->For->id('',$id_fb);
					$this->Dato_productivo->query($sql);
					$sql="delete from fincas where id = ".$this->For->id('',$id_fb);
					$this->Finca->query($sql);
			
					$this->Finca->query("commit");
					$this->Json->mensaje('','UNIDAD PRODUCTIVA ELIMINADA EXITOSAMENETE','EXITO','vacio');
				}
				else
				{
					$this->Json->mensaje('','No se puede Eliminar la Unidad Productiva','EXITO','vacio');
				}
					$this->ver_fincas_productor($da['Finca']['productor_id']);
					$this->ver_fincas_base_productor($da['Productor']['ced_rif']);
		}
		//	$this->ver_fincas_base_productor($this->For->id('',$cedrif));
			$this->render('lista_unidades_productivas_modificar');
	}
      
        
	function listado($busq=null) 
	{
		$this->Json->title('','Listado de Productores');
		$tipo_usuario=$this->For->id('',$this->Session->read('tipo_usuario'));
		$tienda_id=$this->For->id('',$this->Session->read('tienda_id'));
		if($tipo_usuario==1 or $tipo_usuario==3) $data=$this->Productor->find('all',array('conditions'=> array("Productor.id > '0'")));
		else{ $data=$this->Productor->find('all',array('conditions'=> array("Productor.id >"=>'0',"Productor.tienda_id"=>$tienda_id)));}
		
		$this->set('data',$data);
		$this->set('busq',$busq);
		$this->log();
	}

	function listado2($busq=null) 
	{
		//$this->For->botones();
		$this->Json->title('','Listado de Productores');
		$tipo_usuario=$this->For->id('',$this->Session->read('tipo_usuario'));
		$tienda_id=$this->For->id('',$this->Session->read('tienda_id'));
		if($tipo_usuario==1 or $tipo_usuario==3) $data=$this->Productor->find('all',array('conditions'=> array("Productor.id > '0'")));
		else{ $data=$this->Productor->find('all',array('conditions'=> array("Productor.id >"=>'0',"Productor.tienda_id"=>$tienda_id)));}
		
		$this->set('data',$data);
		$this->set('busq',$busq);
		$this->log();
	}

	function ver_dato_productor($div='vista',$divlistado='vista',$tipo=1,$id=null,$pdf=null) 
	{
	
		if($pdf==null){
			$this->set('div',$div);
			$this->set('divlistado',$divlistado);

		if($tipo==2) {$type=true; $ti='Ver';}
		else {$type=false; $ti='Modificar';}
		$this->Json->title('',$ti.' Datos de Productores');
		}
	
	  $id_limpio = $this->For->id('',$id);
		$data=$this->Productor->find('first',array('conditions'=> array("Productor.id"=>$id_limpio)));
		
		$fincas = $this->Finca->find('all',array(
'fields'=>array('Finca.estado_id','Estado.nombre','Finca.municipio_id','Municipio.nombre','Finca.parroquia_id','Parroquia.nombre','Finca.direccion','Finca.tenencia_id',
'Tenencia.nombre','Finca.latitud','Finca.longitud','Finca.cantidad_has','Finca.has_productivas','Finca.has_estimadas','Finca.nombre','Finca.id'),
'conditions'=>array('Finca.productor_id'=>$data['Productor']['id'])));	
	$tamanios=array();
	$datos_productivos=array();
		for($j=0;$j < count($fincas); $j++)
		{
			$aux=  $this->Dato_productivo->find('all',array(
'fields'=>array('Dato_productivo.sector_id','Sector.nombre','Dato_productivo.sub_sector_id','Sub_sector.nombre','Dato_productivo.rubro_unificado_id',
'Rubro_unificado.nombre','Dato_productivo.rubro_id','Rubro.nombre','Dato_productivo.hectarias','Dato_productivo.finca_id','Dato_productivo.id'),
'conditions'=>array('Dato_productivo.finca_id'=>$fincas[$j]['Finca']['id'])));
			$tamanios[$j]=count($aux);
			$datos_productivos[$j]=$aux;
		}

		$this->set('data',$data);$this->set('fincas',$fincas);$this->set('tamanios',$tamanios);$this->set('datos_productivos',$datos_productivos);
		$this->set('tipo',$tipo);
		$this->nuevo();
		$this->ver_municipio($data['Productor']['estado_id']);
		$this->ver_parroquia($data['Productor']['municipio_id']);
		$this->ver_fincas_productor($data['Productor']['id']);
		$this->ver_fincas_base_productor($data['Productor']['ced_rif']);
		if($pdf==null){
			if($tipo==2) {$this->render('ver_dato_productor');}
			else {$this->render('ver_modificar_dato_productor');}
		}

	}

	//public function modificar_finca($div='vista',$divlistado='vista',$id_f) 
	public function modificar_finca($id_f) 
	{        
//echo "div $div, divlistado $divlistado";    
	//		$this->set('div',$div);	$this->set('divlistado',$divlistado);
			$id_limpio = $this->For->id('',$id_f);

			$finca = $this->Finca->find('first',array(
'fields'=>array('Finca.estado_id','Estado.nombre','Finca.municipio_id','Municipio.nombre','Finca.parroquia_id','Parroquia.nombre','Finca.direccion','Finca.tenencia_id',
'Tenencia.nombre','Finca.latitud','Finca.longitud','Finca.cantidad_has','Finca.has_productivas','Finca.has_estimadas','Finca.nombre','Finca.id'),
'conditions'=>array('Finca.id'=>$id_limpio)));	
	
		
			$datos_productivos=  $this->Dato_productivo->find('all',array(
'fields'=>array('Dato_productivo.sector_id','Sector.nombre','Dato_productivo.sub_sector_id','Sub_sector.nombre','Dato_productivo.rubro_unificado_id',
'Rubro_unificado.nombre','Dato_productivo.rubro_id','Rubro.nombre','Dato_productivo.hectarias','Dato_productivo.finca_id','Dato_productivo.id'),
'conditions'=>array('Dato_productivo.finca_id'=>$finca['Finca']['id'])));
			
		$this->set('finca',$finca);	$this->set('lista_datos_productivos',$datos_productivos);
		$this->set('lista_estados',$this->Utilitario->lista_estados());
		$this->set('lista_tenencia_tierra',$this->Utilitario->lista_tenencias());
		$this->ver_municipio($finca['Finca']['estado_id']);
		$this->ver_parroquia($finca['Finca']['municipio_id']);
			echo "<script type=\"text/javascript\" language=\"javascript\">
								//document.getElementById('ver_datos_productivos').style.display='none';
								//document.getElementById('guarda_actualiza').style.display='block';
								</script>";
	}

  public function index_2() 
	{
            
		$this->layout = 'principal';
		
	}

        
      function pdf_produtor($id=null) 
			{
			$this->ver_dato_productor(null,null,null,$id,1);
			$this->layout = 'pdf';
			$this->render();
			}         
  
      function pdf_produtor_html($id=null) 
			{

			$this->ver_dato_productor(null,null,null,$id,1);
			$this->layout = 'pdf';

			}         



}
